#ifndef __BCFBE037_4A22_4a51_A872_C29CA1D99822__
#define __BCFBE037_4A22_4a51_A872_C29CA1D99822__

/////////////////////////////////////////////////////////////////////////////////////////
// 
namespace xos
{

    /////////////////////////////////////////////////////////////////////////////////////////
    // 
    // heart i_acceptor
    // 
    class i_acceptor
    {
    public:
        virtual ~i_acceptor(){}

    public:
        // 
        // heart call
        // 
        virtual int heart_call() = 0;
    };

    /////////////////////////////////////////////////////////////////////////////////////////
    // 
    // heart beat interface
    // 
    class i_heart
    {
    public:
        virtual ~i_heart(){}

    public:
        // 
        // set heart interval
        // 
        virtual int set_interval( xos_i32 iMilliSecondInterval ) = 0;

        // 
        // add acceptor
        // 
        virtual int add_acceptor( i_acceptor * pAcceptor, xos_i32 iInterval ) = 0;

        // 
        // remove acceptor
        // 
        virtual int rem_acceptor( i_acceptor * pAcceptor ) = 0;

        // 
        // release
        // 
        virtual int release() = 0;
    };
}

#endif // __BCFBE037_4A22_4a51_A872_C29CA1D99822__
